﻿Public Class MuhCekNoKayit
	Inherits Process

	Dim eno As Input

	Public Overrides Sub GenericEvent(ByVal e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Start("Ödeme emri çek numarası kaydı", "Ödeme emri numarasını girin.")
				eno = AddOdemeEmri()
				StartBody()
				AddList()
				List.AddColumns("cekno(Ref.no.;c;80),*ceknoyeni(Çek no.;c;80),tarih(Tarih;d;80),kime(Alacaklı kişi/Kurum;l;100%),kimlik(Kimlik;c;80),miktar(Tutar;m;80)")
				AddHandler List.CellValueEdited, AddressOf CellValueEdited
			Case EventType.ValidateForm
				Rs = Muhasebe.OdemeEmri.Oku(Remote, eno.Get)
				If Check("eno", Rs.EOF, "Ödeme emri bulunamadı.") Then Return
				If Check("eno", Not Rs("onay"), "!Bu ödeme emri henüz onaylanmadı.") Then Return
				Rs = Muhasebe.OdemeEmri.CekListesi(Remote, eno.Get)
				List.DataSource = Rs
				List.CurrentCell = List.Rows(0).Cells(1)
				If Not IsNull(Rs("ceknoyeni")) Then Warning("Dikkat! Bu ödeme emrindeki çek numaraları daha önce kaydedilmiştir.")
				Buttons.Show("Save")
				Help = "Çek numaralarını girip kaydedin."
				e.Result = True
			Case EventType.Save
				If Not Confirm("Girdiğiniz çek numaraları kaydedilecek. Devam etmek istediğinize emin misiniz?") Then Return
				Dim Text As String = ""
				For Each Row As DataGridViewRow In List.Rows
					Text &= "," & Row.Cells(0).Value & ";" & Row.Cells(1).Value
				Next
				Muhasebe.OdemeEmri.CekNoKaydet(Remote, Mid(Text, 2))
				Info("Çek numaraları kaydedildi.")
				Close()
		End Select
	End Sub

	Sub CellValueEdited()
		If Confirm("Bu satırdan sonraki çeklere otomatik sıradan numara vermek istiyor musunuz?") Then
			Dim Row As Integer = List.CurrentCell.RowIndex
			Dim Value As Integer = List.CurrentCell.Value
			For i = Row + 1 To List.RowCount - 1
				Value += 1
				List.Cells(i, 1) = Value
			Next
		End If
	End Sub

End Class
